package com.fund.main.entity;


import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fund.serializer.LongToStringSerializer;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

import static com.fund.utils.AppDateUtil.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
import static com.fund.utils.AppDateUtil.TIME_ZONE_DEFAULT;

/**
 * 用户操作基金表(TOperation)表实体类
 *
 * @author makejava
 * @since 2023-02-15 15:04:19
 */
@Data
@Accessors(chain = true)
@SuppressWarnings("serial")
public class TOperation extends Model<TOperation> {


    @TableId
    @JsonSerialize(using = LongToStringSerializer.class)
    private Long opeId;
    @JsonSerialize(using = LongToStringSerializer.class)
    private Long userId;
    @JsonSerialize(using = LongToStringSerializer.class)
    private Long fundId;
    /**
     * 操作金额   （这个基金你要买多少钱）**|** （卖出份额得到多少钱）
     */
    private Double opeMoney;
    /**
     * 操作单价  （根据买 / 卖的时候，获取基金代码，来访问接口获取 **基金净值**）
     */
    private Double opePrice;
    /**
     * 操作份额     （第二日，根据净值来算购买了多少份额）  ?份额不变的   **|**   （卖出的份额）
     */
    private Double opeNum;
    /**
     * 操作日期
     */
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
    private Date opeDate;
    /**
     * 操作状态(0进行中，1失败，2成功)          记得加到养基表
     */
    private String opeStatus;
    /**
     * （0买入还是卖出1）
     */
    private String opeTepe;


    /**
     * 获取主键值
     *
     * @return 主键值
     */
    @Override
    protected Serializable pkVal() {
        return this.opeId;
    }
}

